1. Field of the Invention
This invention relates generally to computer software. More particularly, the invention relates to management of database systems and to user interfaces for database utilities.
2. Description of the Related Art
The data processing resources of business organizations are increasingly taking the form of a distributed computing environment in which data and processing are dispersed over a network comprising many interconnected computers, often heterogeneous and/or geographically remote. Such a computing environment is commonly referred to as an enterprise computing environment or enterprise. In many business organizations, the enterprise includes at least one database management system (DBMS). Often, however, large organizations employ multiple, disparate databases to support mission-critical applications. With the increasing complexity caused by the need to support multiple database management systems (DBMSs) from different vendors, administration of the enterprise can be difficult. Furthermore, administration of the enterprise may additionally require administration of other subsystems, such as application programs and utilities.
A common management console is one way to manage a plurality of subsystems running on one or more networked computer systems. The Microsoft Management Console (MMC) is one example of a management console framework. Although MMC provides a public specification for interfaces between xe2x80x9csnap-inxe2x80x9d modules and the management console, MMC does not govern the behavior of the snap-ins, nor their graphical user interfaces (GUIs). Instead, individual snap-ins provide administration functionality and a graphical user interface.
Many database management systems are deployed on database server computer systems along with associated utilities for database access. These utilities may provide functions such as performing queries, defragmenting database memory, creating or deleting tables or records, and other suitable functions. However, existing utilities from different vendors often have different graphical user interfaces or no interfaces at all. That is, even though utilities for different database management systems may share functions in common, their user interfaces may be substantially different.
The disparate nature of database utilities leads to many problems. For example, it is confusing for utilities to have their own GUIs, even for similar functions, and therefore it is difficult for users to learn and then utilize different GUIs. These difficulties translate into increased training costs or the need to hire additional, specialized database managers. Disparate utilities with disparate GUIs are therefore cumbersome and expensive to maintain. Furthermore, utilities from different vendors may have incompatible interfaces which make integration difficult. For example, it can be difficult or even impossible to combine disparate utilities or to customize the management console in the field.
Therefore, it is desirable to provide an improved system and method for managing disparate database utilities.
The present invention provides various embodiments of a method and system for integrating a plurality of disparate database utilities with a unified graphical user interface. In one embodiment, a management console is implemented or otherwise provided in accordance with an industry standard such as the MICROSOFT Management Console (MMC) framework. In a further embodiment, the management console is implemented in accordance with a superset of MMC such as the BMC Management Console (BMCMC). A framework such as MMC provides a common environment for snap-ins that provide management or administrative functionality.
In one embodiment, the management console comprises a window which includes a scope pane and a result pane. The scope pane contains a hierarchical view of manageable items and options through which the console user may navigate. The hierarchy may include database objects such as tablespaces, tables, records, meta-data, and other suitable database information. The console software program provides a root node in the hierarchy of nodes; snap-ins provide the additional nodes. The result pane contains various types of information, such as a list of options, a task pad, or an ACTIVEX control, resulting from a selection of an item in the scope pane. A task pad is preferably a user-friendly interface that is designed to guide a novice user through one or more administrative tasks.
In one embodiment, the improved management console includes a primary snap-in and a plurality of extension snap-ins. The primary snap-in is preferably a database browser which permits the console user to xe2x80x9cdrill downxe2x80x9d through a hierarchy of database-related objects such as, for example, tablespaces, tables, records, and meta-data. The database browser snap-in preferably supports a plurality of different database management systems (DBMSs). The extension snap-ins provide additional functionality by linking to and extending the primary snap-in to provide access to database utilities or tasks. Graphical representations of these snap-ins are displayed in the management console.
Each extension snap-in may be linked to an associated GUI wizard. A GUI wizard provides a step-by-step user interface for the extension snap-in and the associated database utility. The GUI wizard can be launched from the management console or from any other suitable location when the wizard is implemented as a reusable software component.
In one embodiment, the management console runs on a client computer system. The client computer system is one node in an enterprise computer system comprising a plurality of networked nodes. Typically, the console, snap-ins, and wizards are located on the client side. One or more DBMSs and utilities typically reside on one or more server computer systems.
In a further embodiment, the improved management console includes a utility proxy for remote execution of a database utility. The utility proxy may be located on the client side. When the console user desires to configure or execute a task, the console provides configuration or execution instructions to the utility proxy. The utility proxy sends the configuration or execution instructions to a utility back-end on the server. The utility back-end listens for instructions from the utility proxy and then sends the instructions to the utility or directly to the DBMS. In a further embodiment, the utility back-end is combined with the utility in a single component. The utility proxy and back-end provide improved versioning and modularity to the management console. In one embodiment, the utility proxy further provides job management for a particular utility.
In one embodiment, the snap-ins and other components are implemented in accordance with an industry standard, such as the Component Object Model (COM) or Distributed Component Object Model (DCOM), for reusable software components.